Cryptography is a discipline of mathematics and computer science concerned with information security and related issues, particularly encryption/decryption of information and authentication of identity. In so called “data-in-movement” applications, cryptography has been applied extensively for securing information flows amongst communicating parties over communication channels. Cryptography has also been applied for securing information in data storage mediums and databases in what is know as “data-at-rest” applications.
Symmetric cryptography and asymmetric cryptography are known classes of algorithms that use keys having one or more secret parameters for encryption and decryption of information and authentication. In symmetric cryptography, keys represent shared secrets which are known a priori amongst communicating parties. Systems secured with symmetric-key algorithms use relatively simple encryption and decryption computations. Such systems also require choosing, distributing and maintaining the shared secret key amongst the communicating parties. In order to avoid security breach and potential discovery by a cryptographic adversary, the shared secret key must be changed often and kept secure during distribution and in service, making symmetric-key cryptography impractical and hard to scale for securing large systems.
Asymmetric cryptography uses a pair of mathematically related keys known as public and private keys, which obviate the need for prior knowledge of a shared secret key amongst communicating parties. While computationally more intensive, asymmetric key cryptography overcomes scalability disadvantages associated with symmetric key cryptography. Public key infrastructure (PKI) is a known system for securing information using asymmetric key cryptography. In such system, a party at one computer station digitally signs messages using a randomly created private key and a party at another computer station verifies the signature using a distributed public key derived from the private key. The public keys of the communicating parties are distributed in corresponding identity certificates issued by one or more trusted parties called certificate authorities (CAs). In this way, PKI keeps messages secret from those that do not possess the private key and the identity certificates allows anyone having the associated public key to verify that the message was created with the private key. Consequently, PKI enables communicating parties to be authenticated to each other and to use the information in identity certificates to encrypt and decrypt messages, thereby establishing message confidentiality, integrity and authentication without advance exchange of shared secret keys.
A public key certificate, also known as an identity certificate, includes a digital signature that binds a public key with an identity represented by such information as name, e-mail address, etc. A CA digitally signing the certificate attests that the public key belongs to the identity, i.e., the person, organization, server, or other entity noted in the certificate. The CA is often a trusted third party that issues digital certificates for use by communicating parties. The requirement of trust obligates the CA to somehow verify the identity credentials of communicating parties. It is assumed that if the parties trust the CA and can verify its signature, they can also verify that a public key does indeed belong to whomever is identified in the certificate.
Some enterprise-scale PKI systems rely on certificate chains to establish a party's identity. Under such scheme, a certificate may be issued by a CA whose legitimacy is established for such purpose by a higher-level CA, and so on. This produces a certificate hierarchy composed of several CAs, often more than one organization. CAs can manage issuance of certificates using various computers and assorted interoperating software packages from several sources. This makes standards critical to PKI operation. IETF PKIX working group is involved with standardization of public key certificate format, including a certification standard known as X.509.
Various point-to-point secure communication protocols that use cryptography are known. Examples of such protocols include Secure Sockets Layer (SSL), Transport Layer Security (TLS), Secure Shell (SSH) and IP Security (IP Sec). SSL and TLS provide cryptographic endpoint authentication for applications that communicate within client server based networks for preventing eavesdropping, tampering, and message forgery during communications. SSH is a set of standards and associated network protocols that allow for establishing a secure channel between a local and a remote computer. This protocol uses public-key cryptography to authenticate the remote computer. IP Sec is a standard for securing Internet Protocol (IP) communications by encrypting all IP packets for authentication, data confidentiality and message integrity.
In conventional secure systems, such as those that use the above mentioned protocols, encrypted messages are communicated over channels within the network, often through a firewall, based on authentication of identities of the communicating parties by CAs. As long as the identity of the communicating parties are authenticated, conventional secure systems allow the parties to communicate with each other over channels.
In another conventional approach, Lawrence Berkeley National Laboratory also known as Berkeley Lab has developed a system called Akenti (http://dsd.lbl.gov/security/Akenti/homepage.html) that addresses the issues raised in allowing restricted access to resources which are controlled by multiple stakeholders. Akenti provides a way to express and to enforce an access control policy without requiring a central enforcer and administrative authority. The system's architecture is intended to provide scalable security services in highly distributed network environments. Akenti is designed to allow each stakeholder in the system resources to enforce its access control requirements independently of the other stakeholders. Akenti allows each stakeholder to change its requirements at any time and to be confident that the new requirements would take effect immediately, and to provide high assurance of integrity and non-repudiability in the expression of the access control requirements. Akenti makes use of digitally signed certificates capable of carrying user identity authentication, resource usage requirements (“use-conditions”), user attribute authorizations (“attribute certificates”), delegated authorization and authorization decisions split among on-line and off-line entities.
It is also known to partition or otherwise separate resources into policy-based equivalence classes and to control information flows between subjects and resources assigned to the partitions according to a Separation Kernel configuration data. For example, U.S. Pat. No. 6,772,416 discloses a computer system that supports a high degree of separation between processing elements. The computer-implemented system executes an operating system having a kernel and includes a plurality of cells. Each cell has one or more processing elements, a domain of execution and a collection of “strands” or tasks, where each strand or task is a stream of programmable machine instructions executable by the kernel of the operating system. A separation specification governs communication between the processing elements and administers the communication between the processing elements in accordance with the separation specification such that one processing element can influence the operation of another processing element only as set forth by the separation specification.
As the security needs in information systems become more advanced, however, there exists a need for a secure system and method that better manages access to information resources.